package br.com.wuo.karina.view;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import br.com.wuo.karina.model.Professor;
import br.com.wuo.karina.model.dao.impl.ProfessorDaoImpl;
import br.com.wuo.karina.utils.NumericField;

import net.miginfocom.swing.MigLayout;

/**
 *
 * @author Renan Wuo
 */
public class SalvarProfessor extends JFrame {

	private static final long serialVersionUID = 1L;
	private MigLayout layout;
    private JTextField txtNome, txtSobrenome, txtLogradouro, txtNumero, txtComplemento, txtCep,
	   				   txtBairro, txtCidade, txtEstado, txtNaturalidade, txtNacionalidade, txtTelefone, txtCelular, txtRg, txtCpf;
    private JButton btnSave, btnClear, btnExit;
    private ProfessorDaoImpl professorDao;

    public SalvarProfessor() {
        super("Salvar Professor");
        initialize();
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
        addListener();
    }

    public void initialize() {
    	layout = new MigLayout("", "10px[100][250, fill][fill]10px", "");
        setLayout(layout);
        
        professorDao = new ProfessorDaoImpl();

        txtNome = new JTextField();
        txtSobrenome = new JTextField();
        txtLogradouro = new JTextField();
        txtNumero = new NumericField();
        txtComplemento = new JTextField();
        txtCep = new JTextField();
        txtBairro = new JTextField();
        txtCidade = new JTextField();
        txtEstado = new JTextField();
        txtNaturalidade = new JTextField();
        txtNacionalidade = new JTextField();
        txtTelefone = new JTextField();
        txtCelular = new JTextField();
        txtRg = new JTextField();
        txtCpf = new JTextField();

        btnSave = new JButton("Salvar");
        btnClear = new JButton("Limpar");
        btnExit = new JButton("Sair");

        add(new JLabel("Nome:"));
        add(txtNome, "grow, wrap");
        add(new JLabel("Sobrenome:"));
        add(txtSobrenome, "grow, wrap");
        add(new JLabel("Logradouro:"));
        add(txtLogradouro, "grow, wrap");
        add(new JLabel("Nº:"), "split 2");
        add(txtNumero, "grow");
        add(new JLabel("Complemento:"), "split 2");
        add(txtComplemento, "grow, wrap");
        add(new JLabel("CEP"), "split 2");
        add(txtCep, "grow");
        add(new JLabel("Bairro"), "split 2");
        add(txtBairro, "grow, wrap");        
        add(new JLabel("Cidade"), "split 2");
        add(txtCidade, "grow");        
        add(new JLabel("Estado"), "split 2");
        add(txtEstado, "grow, wrap");        
        add(new JLabel("Naturalidade"));
        add(txtNaturalidade, "wrap");        
        add(new JLabel("Nacionalidade"));
        add(txtNacionalidade, "wrap");        
        add(new JLabel("Telefone"), "split 4, span 2");
        add(txtTelefone, "grow");        
        add(new JLabel("Celular"), "split 2");
        add(txtCelular, "grow, wrap");
        add(new JLabel("RG:"), "split 4, span 2");
        add(txtRg, "grow");
        add(new JLabel("CPF:"), "split 2");
        add(txtCpf, "grow, wrap 20px");

        add(btnSave, "split 3, span 2, align 50% 50%");
        add(btnClear);
        add(btnExit);
        pack();

    }

    public void addListener() {
    	btnSave.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				
				Professor professor = new Professor(txtNome.getText(), txtSobrenome.getText(), txtLogradouro.getText(), Integer.parseInt(txtNumero.getText()), 
													txtComplemento.getText(), txtCep.getText(), txtBairro.getText(), txtCidade.getText(), txtEstado.getText(), 
													txtNaturalidade.getText(), txtNacionalidade.getText(), txtTelefone.getText(), txtCelular.getText(), 
													txtRg.getText(), txtCpf.getText());
				
				try {
					professorDao.salvarProfessor(professor);
				} catch (SQLException e1) {
					e1.printStackTrace();
					JOptionPane.showMessageDialog(null, "Professor não salvo");
				}
				
				clear();
			}
		});
    	
    	btnClear.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				clear();
			}
		});
    	
    	btnExit.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				
			}
		});
    }

    public void clear() {
        txtNome.setText("");
        txtSobrenome.setText("");
        txtLogradouro.setText("");
        txtNumero.setText("");
        txtComplemento.setText("");
        txtCep.setText("");
        txtBairro.setText("");
        txtCidade.setText("");
        txtEstado.setText("");
        txtNaturalidade.setText("");
        txtNacionalidade.setText("");
        txtTelefone.setText("");
        txtCelular.setText("");
        txtRg.setText("");
        txtCpf.setText("");
        
    }
}
